{
GdkDragContext *context = NULL;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_DRAG_MOTION:
case GDK_DROP_START:
if (pending_motion)
return pending_motion;
- if (event->event.type == GDK_MOTION_NOTIFY && (event->flags & GDK_EVENT_FLUSHED) == 0)
+ if (event->event.any.type == GDK_MOTION_NOTIFY && (event->flags & GDK_EVENT_FLUSHED) == 0)
pending_motion = tmp_list;
else
return tmp_list;
if (event->flags & GDK_EVENT_PENDING)
break;
- if (event->event.type != GDK_MOTION_NOTIFY)
+ if (event->event.any.type != GDK_MOTION_NOTIFY)
break;
if (pending_motion_window != NULL &&
break;
pending_motion_window = event->event.any.window;
- pending_motion_device = event->motion.device;
+ pending_motion_device = event->event.motion.device;
pending_motions = tmp_list;
tmp_list = tmp_list->prev;
gdk_event_get_time (const GdkEvent *event)
{
if (event)
- switch (event->type)
+ switch (event->any.type)
{
case GDK_MOTION_NOTIFY:
return event->motion.time;
g_return_val_if_fail (state != NULL, FALSE);
if (event)
- switch (event->type)
+ switch (event->any.type)
{
case GDK_MOTION_NOTIFY:
*state = event->motion.state;
g_return_val_if_fail (event != NULL, FALSE);
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_CONFIGURE:
x = event->configure.x;
g_return_val_if_fail (event != NULL, FALSE);
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_MOTION_NOTIFY:
x = event->motion.x_root;
{
g_return_if_fail (event != NULL);
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_CONFIGURE:
event->configure.x = x;
g_return_val_if_fail (event != NULL, FALSE);
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
g_return_val_if_fail (event != NULL, FALSE);
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
gboolean fetched = TRUE;
guint number = 0;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_KEY_PRESS:
case GDK_KEY_RELEASE:
gdk_event_set_keyval (GdkEvent *event,
guint keyval)
{
- if (event->type == GDK_KEY_PRESS ||
- event->type == GDK_KEY_RELEASE)
+ if (event->any.type == GDK_KEY_PRESS ||
+ event->any.type == GDK_KEY_RELEASE)
event->key.keyval = keyval;
}
gboolean fetched = TRUE;
guint16 number = 0;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_KEY_PRESS:
case GDK_KEY_RELEASE:
{
gboolean fetched = TRUE;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_KEY_PRESS:
case GDK_KEY_RELEASE:
{
gboolean fetched = TRUE;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_KEY_PRESS:
case GDK_KEY_RELEASE:
{
gboolean fetched = TRUE;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_KEY_PRESS:
case GDK_KEY_RELEASE:
gboolean fetched = TRUE;
GdkScrollDirection dir = 0;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_SCROLL:
if (event->scroll.direction == GDK_SCROLL_SMOOTH)
gdouble dx = 0.0;
gdouble dy = 0.0;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_SCROLL:
if (event->scroll.direction == GDK_SCROLL_SMOOTH)
{
gdouble x, y;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_MOTION_NOTIFY:
x = event->motion.x;
return TRUE;
}
- else if (event->type == GDK_BUTTON_PRESS ||
- event->type == GDK_BUTTON_RELEASE)
+ else if (event->any.type == GDK_BUTTON_PRESS ||
+ event->any.type == GDK_BUTTON_RELEASE)
{
device = event->button.device;
axes = event->button.axes;
}
- else if (event->type == GDK_TOUCH_BEGIN ||
- event->type == GDK_TOUCH_UPDATE ||
- event->type == GDK_TOUCH_END ||
- event->type == GDK_TOUCH_CANCEL)
+ else if (event->any.type == GDK_TOUCH_BEGIN ||
+ event->any.type == GDK_TOUCH_UPDATE ||
+ event->any.type == GDK_TOUCH_END ||
+ event->any.type == GDK_TOUCH_CANCEL)
{
device = event->touch.device;
axes = event->touch.axes;
}
- else if (event->type == GDK_MOTION_NOTIFY)
+ else if (event->any.type == GDK_MOTION_NOTIFY)
{
device = event->motion.device;
axes = event->motion.axes;
g_set_object (&private->device, device);
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_MOTION_NOTIFY:
event->motion.device = device;
return private->device;
}
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_MOTION_NOTIFY:
return event->motion.device;
case GDK_PROXIMITY_IN:
case GDK_PROXIMITY_OUT:
return event->proximity.device;
+ default:
+ break;
+ }
+
+ /* Fallback if event has no device set */
+ switch (event->any.type)
+ {
+ case GDK_MOTION_NOTIFY:
+ case GDK_BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ case GDK_TOUCH_BEGIN:
+ case GDK_TOUCH_UPDATE:
+ case GDK_TOUCH_END:
+ case GDK_TOUCH_CANCEL:
case GDK_ENTER_NOTIFY:
case GDK_LEAVE_NOTIFY:
case GDK_FOCUS_CHANGE:
g_warning ("Event with type %d not holding a GdkDevice. "
"It is most likely synthesized outside Gdk/GTK+",
- event->type);
+ event->any.type);
display = gdk_window_get_display (event->any.window);
seat = gdk_display_get_default_seat (display);
- if (event->type == GDK_KEY_PRESS ||
- event->type == GDK_KEY_RELEASE)
+ if (event->any.type == GDK_KEY_PRESS ||
+ event->any.type == GDK_KEY_RELEASE)
return gdk_seat_get_keyboard (seat);
else
return gdk_seat_get_pointer (seat);
{
g_return_val_if_fail (event != NULL, FALSE);
- if (event->type == GDK_BUTTON_PRESS)
+ if (event->any.type == GDK_BUTTON_PRESS)
{
const GdkEventButton *bevent = (const GdkEventButton *) event;
GdkDisplay *display;
if (!event)
return NULL;
- if (event->type == GDK_TOUCH_BEGIN ||
- event->type == GDK_TOUCH_UPDATE ||
- event->type == GDK_TOUCH_END ||
- event->type == GDK_TOUCH_CANCEL)
+ if (event->any.type == GDK_TOUCH_BEGIN ||
+ event->any.type == GDK_TOUCH_UPDATE ||
+ event->any.type == GDK_TOUCH_END ||
+ event->any.type == GDK_TOUCH_CANCEL)
return event->touch.sequence;
return NULL;
{
g_return_val_if_fail (event != NULL, GDK_NOTHING);
- return event->type;
+ return event->any.type;
}
/**
g_warning ("Event with type %d not holding a GdkSeat. "
"It is most likely synthesized outside Gdk/GTK+",
- event->type);
+ event->any.type);
device = gdk_event_get_device (event);
if (!event)
return FALSE;
- if (event->type == GDK_DRAG_ENTER ||
- event->type == GDK_DRAG_LEAVE ||
- event->type == GDK_DRAG_MOTION ||
- event->type == GDK_DRAG_STATUS ||
- event->type == GDK_DROP_START ||
- event->type == GDK_DROP_FINISHED)
+ if (event->any.type == GDK_DRAG_ENTER ||
+ event->any.type == GDK_DRAG_LEAVE ||
+ event->any.type == GDK_DRAG_MOTION ||
+ event->any.type == GDK_DRAG_STATUS ||
+ event->any.type == GDK_DROP_START ||
+ event->any.type == GDK_DROP_FINISHED)
{
*context = event->dnd.context;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_ENTER_NOTIFY ||
- event->type == GDK_LEAVE_NOTIFY)
+ if (event->any.type == GDK_ENTER_NOTIFY ||
+ event->any.type == GDK_LEAVE_NOTIFY)
{
*mode = event->crossing.mode;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_ENTER_NOTIFY ||
- event->type == GDK_LEAVE_NOTIFY)
+ if (event->any.type == GDK_ENTER_NOTIFY ||
+ event->any.type == GDK_LEAVE_NOTIFY)
{
*detail = event->crossing.detail;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_TOUCHPAD_PINCH)
+ if (event->any.type == GDK_TOUCHPAD_PINCH)
{
*phase = event->touchpad_pinch.phase;
return TRUE;
}
- else if (event->type == GDK_TOUCHPAD_SWIPE)
+ else if (event->any.type == GDK_TOUCHPAD_SWIPE)
{
*phase = event->touchpad_swipe.phase;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_TOUCHPAD_PINCH)
+ if (event->any.type == GDK_TOUCHPAD_PINCH)
{
*n_fingers = event->touchpad_pinch.n_fingers;
return TRUE;
}
- else if (event->type == GDK_TOUCHPAD_SWIPE)
+ else if (event->any.type == GDK_TOUCHPAD_SWIPE)
{
*n_fingers = event->touchpad_swipe.n_fingers;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_TOUCHPAD_PINCH)
+ if (event->any.type == GDK_TOUCHPAD_PINCH)
{
*dx = event->touchpad_pinch.dx;
*dy = event->touchpad_pinch.dy;
return TRUE;
}
- else if (event->type == GDK_TOUCHPAD_SWIPE)
+ else if (event->any.type == GDK_TOUCHPAD_SWIPE)
{
*dx = event->touchpad_swipe.dx;
*dy = event->touchpad_swipe.dy;
if (!event)
return FALSE;
- if (event->type == GDK_TOUCHPAD_PINCH)
+ if (event->any.type == GDK_TOUCHPAD_PINCH)
{
*delta = event->touchpad_pinch.angle_delta;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_TOUCHPAD_PINCH)
+ if (event->any.type == GDK_TOUCHPAD_PINCH)
{
*scale = event->touchpad_pinch.scale;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_TOUCH_BEGIN ||
- event->type == GDK_TOUCH_UPDATE ||
- event->type == GDK_TOUCH_END)
+ if (event->any.type == GDK_TOUCH_BEGIN ||
+ event->any.type == GDK_TOUCH_UPDATE ||
+ event->any.type == GDK_TOUCH_END)
{
*emulating = event->touch.emulating_pointer;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_GRAB_BROKEN)
+ if (event->any.type == GDK_GRAB_BROKEN)
{
*window = event->grab_broken.grab_window;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_WINDOW_STATE)
+ if (event->any.type == GDK_WINDOW_STATE)
{
*changed = event->window_state.changed_mask;
*new_state = event->window_state.new_window_state;
if (!event)
return FALSE;
- if (event->type == GDK_FOCUS_CHANGE)
+ if (event->any.type == GDK_FOCUS_CHANGE)
{
*focus_in = event->focus_change.in;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_PAD_GROUP_MODE)
+ if (event->any.type == GDK_PAD_GROUP_MODE)
{
*group = event->pad_group_mode.group;
*mode = event->pad_group_mode.mode;
return TRUE;
}
- else if (event->type == GDK_PAD_BUTTON_PRESS ||
- event->type == GDK_PAD_BUTTON_RELEASE)
+ else if (event->any.type == GDK_PAD_BUTTON_PRESS ||
+ event->any.type == GDK_PAD_BUTTON_RELEASE)
{
*group = event->pad_button.group;
*mode = event->pad_button.mode;
return TRUE;
}
- else if (event->type == GDK_PAD_RING ||
- event->type == GDK_PAD_STRIP)
+ else if (event->any.type == GDK_PAD_RING ||
+ event->any.type == GDK_PAD_STRIP)
{
*group = event->pad_axis.group;
*mode = event->pad_axis.mode;
if (!event)
return FALSE;
- if (event->type == GDK_PAD_BUTTON_PRESS ||
- event->type == GDK_PAD_BUTTON_RELEASE)
+ if (event->any.type == GDK_PAD_BUTTON_PRESS ||
+ event->any.type == GDK_PAD_BUTTON_RELEASE)
{
*button = event->pad_button.button;
return TRUE;
if (!event)
return FALSE;
- if (event->type == GDK_PAD_RING ||
- event->type == GDK_PAD_STRIP)
+ if (event->any.type == GDK_PAD_RING ||
+ event->any.type == GDK_PAD_STRIP)
{
*index = event->pad_axis.index;
*value = event->pad_axis.value;
if (!event)
return FALSE;
- if (event->type == GDK_PROPERTY_NOTIFY)
+ if (event->any.type == GDK_PROPERTY_NOTIFY)
{
*property = event->property.atom;
*state = event->property.state;
if (!source_device)
return FALSE;
- if (event->type == GDK_MOTION_NOTIFY)
+ if (event->any.type == GDK_MOTION_NOTIFY)
{
*axes = event->motion.axes;
*n_axes = gdk_device_get_n_axes (source_device);
return TRUE;
}
- else if (event->type == GDK_BUTTON_PRESS ||
- event->type == GDK_BUTTON_RELEASE)
+ else if (event->any.type == GDK_BUTTON_PRESS ||
+ event->any.type == GDK_BUTTON_RELEASE)
{
*axes = event->button.axes;
*n_axes = gdk_device_get_n_axes (source_device);
*/
union _GdkEvent
{
- GdkEventType type;
GdkEventAny any;
GdkEventExpose expose;
GdkEventMotion motion;
goto out;
#ifdef DEBUG_WINDOW_PRINTING
- if (event->type == GDK_KEY_PRESS &&
+ if (event->any.type == GDK_KEY_PRESS &&
(event->key.keyval == 0xa7 ||
event->key.keyval == 0xbd))
{
if (event_window->window_type == GDK_WINDOW_ROOT)
goto out;
- if (event->type == GDK_ENTER_NOTIFY)
+ if (event->any.type == GDK_ENTER_NOTIFY)
_gdk_display_set_window_under_pointer (display, device, event_window);
- else if (event->type == GDK_LEAVE_NOTIFY)
+ else if (event->any.type == GDK_LEAVE_NOTIFY)
_gdk_display_set_window_under_pointer (display, device, NULL);
- if ((event->type == GDK_BUTTON_RELEASE ||
- event->type == GDK_TOUCH_CANCEL ||
- event->type == GDK_TOUCH_END) &&
+ if ((event->any.type == GDK_BUTTON_RELEASE ||
+ event->any.type == GDK_TOUCH_CANCEL ||
+ event->any.type == GDK_TOUCH_END) &&
!event->any.send_event)
{
- if (event->type == GDK_BUTTON_RELEASE ||
+ if (event->any.type == GDK_BUTTON_RELEASE ||
gdk_event_get_pointer_emulated (event))
{
button_release_grab =
GdkEventType evtype)
{
if (seat->pointer_info.frame.event &&
- seat->pointer_info.frame.event->type != evtype)
+ seat->pointer_info.frame.event->any.type != evtype)
gdk_wayland_seat_flush_frame_event (seat);
seat->pointer_info.frame.event = gdk_event_new (evtype);
GDK_NOTE (EVENTS,
g_message ("swipe event %d, coords: %f %f, seat %p state %d",
- event->type, event->touchpad_swipe.x,
+ event->any.type, event->touchpad_swipe.x,
event->touchpad_swipe.y, seat,
event->touchpad_swipe.state));
GDK_NOTE (EVENTS,
g_message ("pinch event %d, coords: %f %f, seat %p state %d",
- event->type, event->touchpad_pinch.x,
+ event->any.type, event->touchpad_pinch.x,
event->touchpad_pinch.y, seat,
event->touchpad_pinch.state));
if (!event)
return;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_MOTION_NOTIFY:
event->motion.time = time;
return;
}
- if (event->type == GDK_PROXIMITY_OUT)
+ if (event->any.type == GDK_PROXIMITY_OUT)
emulate_crossing (event->any.window, NULL,
tablet->master, GDK_LEAVE_NOTIFY,
GDK_CROSSING_NORMAL, time);
_gdk_wayland_display_deliver_event (gdk_seat_get_display (tablet->seat),
event);
- if (event->type == GDK_PROXIMITY_IN)
+ if (event->any.type == GDK_PROXIMITY_IN)
emulate_crossing (event->any.window, NULL,
tablet->master, GDK_ENTER_NOTIFY,
GDK_CROSSING_NORMAL, time);
GdkEventType evtype)
{
if (tablet->pointer_info.frame.event &&
- tablet->pointer_info.frame.event->type != evtype)
+ tablet->pointer_info.frame.event->any.type != evtype)
gdk_wayland_tablet_flush_frame_event (tablet, GDK_CURRENT_TIME);
tablet->pointer_info.frame.event = gdk_event_new (evtype);
frame_event = tablet->pointer_info.frame.event;
- if (frame_event && frame_event->type == GDK_PROXIMITY_OUT)
+ if (frame_event && frame_event->any.type == GDK_PROXIMITY_OUT)
{
tool->current_tablet = NULL;
tablet->current_tool = NULL;
double x, y;
uint32_t serial;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
if (GDK_DEBUG_CHECK (EVENTS))
{
g_message ("%s:\t\twindow: %ld key: %12s %d",
- event->type == GDK_KEY_PRESS ? "key press " : "key release",
+ event->any.type == GDK_KEY_PRESS ? "key press " : "key release",
xevent->xkey.window,
event->key.keyval ? gdk_keyval_name (event->key.keyval) : "(none)",
event->key.keyval);
if (!context->is_source)
return FALSE;
- if (!x11_context->grab_seat && event->type != GDK_DROP_FINISHED)
+ if (!x11_context->grab_seat && event->any.type != GDK_DROP_FINISHED)
return FALSE;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_MOTION_NOTIFY:
return gdk_dnd_handle_motion_event (context, &event->motion);
}
if (event &&
- (event->type == GDK_ENTER_NOTIFY ||
- event->type == GDK_LEAVE_NOTIFY) &&
+ (event->any.type == GDK_ENTER_NOTIFY ||
+ event->any.type == GDK_LEAVE_NOTIFY) &&
event->any.window != NULL)
{
/* Handle focusing (in the case where no window manager is running */
}
if (event &&
- (event->type == GDK_TOUCH_BEGIN ||
- event->type == GDK_TOUCH_END ||
- event->type == GDK_MOTION_NOTIFY ||
- event->type == GDK_ENTER_NOTIFY ||
- event->type == GDK_LEAVE_NOTIFY))
+ (event->any.type == GDK_TOUCH_BEGIN ||
+ event->any.type == GDK_TOUCH_END ||
+ event->any.type == GDK_MOTION_NOTIFY ||
+ event->any.type == GDK_ENTER_NOTIFY ||
+ event->any.type == GDK_LEAVE_NOTIFY))
{
handle_touch_synthetic_crossing (event);
}
double x_root, y_root;
XClientMessageEvent xclient = { 0 };
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
{
event = gdk_event_copy (event);
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_SCROLL:
rewrite_events_translate (event->any.window,
GdkDisplay *display;
GdkDevice *device;
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_SCROLL:
case GDK_BUTTON_PRESS:
static gboolean
is_pointing_event (GdkEvent *event)
{
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_MOTION_NOTIFY:
case GDK_ENTER_NOTIFY:
sequence = gdk_event_get_event_sequence (event);
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_LEAVE_NOTIFY:
if (event->crossing.mode == GDK_CROSSING_GRAB ||
case GDK_TOUCH_CANCEL:
old_target = update_pointer_focus_state (toplevel, event, NULL);
- if (event->type == GDK_LEAVE_NOTIFY)
+ if (event->any.type == GDK_LEAVE_NOTIFY)
gtk_synthesize_crossing_events (toplevel, old_target, NULL,
event, event->crossing.mode);
break;
target = GTK_WIDGET (toplevel);
old_target = update_pointer_focus_state (toplevel, event, target);
- if (event->type == GDK_MOTION_NOTIFY || event->type == GDK_ENTER_NOTIFY)
+ if (event->any.type == GDK_MOTION_NOTIFY || event->any.type == GDK_ENTER_NOTIFY)
{
if (!gtk_window_lookup_pointer_focus_implicit_grab (toplevel, device,
sequence))
gtk_window_maybe_update_cursor (toplevel, NULL, device);
}
- if (event->type == GDK_TOUCH_BEGIN)
+ if (event->any.type == GDK_TOUCH_BEGIN)
gtk_window_set_pointer_focus_grab (toplevel, device, sequence, target);
/* Let it take the effective pointer focus anyway, as it may change due
device,
sequence);
gtk_window_set_pointer_focus_grab (toplevel, device, sequence,
- event->type == GDK_BUTTON_PRESS ?
+ event->any.type == GDK_BUTTON_PRESS ?
target : NULL);
- if (event->type == GDK_BUTTON_RELEASE)
+ if (event->any.type == GDK_BUTTON_RELEASE)
{
old_target = target;
target = gtk_widget_pick (GTK_WIDGET (toplevel), x, y);
* This is the key to implementing modality.
*/
if (!grab_widget ||
- ((gtk_widget_is_sensitive (event_widget) || event->type == GDK_SCROLL) &&
+ ((gtk_widget_is_sensitive (event_widget) || event->any.type == GDK_SCROLL) &&
gtk_widget_is_ancestor (event_widget, grab_widget)))
grab_widget = event_widget;
* Drag events are also not redirected, since it isn't
* clear what the semantics of that would be.
*/
- switch (event->type)
+ switch (event->any.type)
{
case GDK_NOTHING:
break;
gboolean mnemonics_visible;
GtkWidget *window;
- mnemonics_visible = (event->type == GDK_KEY_PRESS);
+ mnemonics_visible = (event->any.type == GDK_KEY_PRESS);
window = gtk_widget_get_toplevel (grab_widget);
if (GTK_IS_WINDOW (window))
break;
}
- if (event->type == GDK_ENTER_NOTIFY
- || event->type == GDK_LEAVE_NOTIFY
- || event->type == GDK_BUTTON_PRESS
- || event->type == GDK_KEY_PRESS
- || event->type == GDK_DRAG_ENTER
- || event->type == GDK_GRAB_BROKEN
- || event->type == GDK_MOTION_NOTIFY
- || event->type == GDK_TOUCH_UPDATE
- || event->type == GDK_SCROLL)
+ if (event->any.type == GDK_ENTER_NOTIFY
+ || event->any.type == GDK_LEAVE_NOTIFY
+ || event->any.type == GDK_BUTTON_PRESS
+ || event->any.type == GDK_KEY_PRESS
+ || event->any.type == GDK_DRAG_ENTER
+ || event->any.type == GDK_GRAB_BROKEN
+ || event->any.type == GDK_MOTION_NOTIFY
+ || event->any.type == GDK_TOUCH_UPDATE
+ || event->any.type == GDK_SCROLL)
{
_gtk_tooltip_handle_event (event);
}
widget = NULL;
if (event && event->any.window &&
- (event->type == GDK_DESTROY || !gdk_window_is_destroyed (event->any.window)))
+ (event->any.type == GDK_DESTROY || !gdk_window_is_destroyed (event->any.window)))
{
gdk_window_get_user_data (event->any.window, &widget_ptr);
widget = widget_ptr;
* event
*/
if (!gtk_widget_is_sensitive (widget))
- handled_event = event->type != GDK_SCROLL;
+ handled_event = event->any.type != GDK_SCROLL;
else
handled_event = gtk_widget_event (widget, event);
/* stop propagating on SCROLL, but don't handle the event, so it
* can propagate up again and reach its handling widget
*/
- if (event->type == GDK_SCROLL)
+ if (event->any.type == GDK_SCROLL)
break;
else
handled_event = TRUE;
propagate_func = captured ? _gtk_widget_captured_event : gtk_widget_event;
- if (event->type == GDK_KEY_PRESS || event->type == GDK_KEY_RELEASE)
+ if (event->any.type == GDK_KEY_PRESS || event->any.type == GDK_KEY_RELEASE)
{
/* Only send key events within Window widgets to the Window
* The Window widget will in turn pass the
if (event_widget == widget)
return;
- if (event->type == GDK_TOUCH_BEGIN ||
- event->type == GDK_TOUCH_UPDATE ||
- event->type == GDK_TOUCH_END)
+ if (event->any.type == GDK_TOUCH_BEGIN ||
+ event->any.type == GDK_TOUCH_UPDATE ||
+ event->any.type == GDK_TOUCH_END)
{
press = gdk_event_copy (event);
- press->type = GDK_TOUCH_BEGIN;
+ press->any.type = GDK_TOUCH_BEGIN;
}
- else if (event->type == GDK_BUTTON_PRESS ||
- event->type == GDK_BUTTON_RELEASE)
+ else if (event->any.type == GDK_BUTTON_PRESS ||
+ event->any.type == GDK_BUTTON_RELEASE)
{
press = gdk_event_copy (event);
- press->type = GDK_BUTTON_PRESS;
+ press->any.type = GDK_BUTTON_PRESS;
}
- else if (event->type == GDK_MOTION_NOTIFY)
+ else if (event->any.type == GDK_MOTION_NOTIFY)
{
press = gdk_event_new (GDK_BUTTON_PRESS);
press->any.window = g_object_ref (event->any.window);
last_event = _gtk_widget_get_last_event (widget, sequence);
if (last_event &&
- (last_event->type == GDK_TOUCH_BEGIN ||
- last_event->type == GDK_TOUCH_UPDATE ||
- last_event->type == GDK_TOUCH_END) &&
+ (last_event->any.type == GDK_TOUCH_BEGIN ||
+ last_event->any.type == GDK_TOUCH_UPDATE ||
+ last_event->any.type == GDK_TOUCH_END) &&
last_event->touch.emulating_pointer)
return TRUE;
}
}
#define WIDGET_REALIZED_FOR_EVENT(widget, event) \
- (event->type == GDK_FOCUS_CHANGE || _gtk_widget_get_realized(widget))
+ (event->any.type == GDK_FOCUS_CHANGE || _gtk_widget_get_realized(widget))
/**
* gtk_widget_event:
g_return_val_if_fail (GTK_IS_WIDGET (widget), TRUE);
g_return_val_if_fail (WIDGET_REALIZED_FOR_EVENT (widget, event), TRUE);
- if (event->type == GDK_EXPOSE)
+ if (event->any.type == GDK_EXPOSE)
{
g_warning ("Events of type GDK_EXPOSE cannot be synthesized. To get "
"the same effect, call gdk_window_invalidate_rect/region(), "
g_return_val_if_fail (GTK_IS_WIDGET (widget), TRUE);
g_return_val_if_fail (WIDGET_REALIZED_FOR_EVENT (widget, event), TRUE);
- if (event->type == GDK_EXPOSE)
+ if (event->any.type == GDK_EXPOSE)
{
g_warning ("Events of type GDK_EXPOSE cannot be synthesized. To get "
"the same effect, call gdk_window_invalidate_rect/region(), "
* at the last moment, since the event may have been queued
* up behind other events, held over a recursive main loop, etc.
*/
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_EXPOSE:
case GDK_MOTION_NOTIFY:
return TRUE;
/* Non input events get handled right away */
- switch ((guint) event->type)
+ switch ((guint) event->any.type)
{
case GDK_EXPOSE:
case GDK_NOTHING:
return_val |= _gtk_widget_run_controllers (widget, event_copy, GTK_PHASE_TARGET);
/* XXX: Tooltips should be handled through captured events in the toplevel */
- if (event_copy->type == GDK_FOCUS_CHANGE)
+ if (event_copy->any.type == GDK_FOCUS_CHANGE)
{
if (event_copy->focus_change.in)
_gtk_tooltip_focus_in (widget);
{
gint signal_num;
- switch (event->type)
+ switch (event->any.type)
{
case GDK_DRAG_ENTER:
case GDK_DRAG_LEAVE:
signal_num = GRAB_BROKEN_EVENT;
break;
default:
- g_warning ("gtk_widget_event(): unhandled event type: %d", event->type);
+ g_warning ("gtk_widget_event(): unhandled event type: %d", event->any.type);
signal_num = -1;
break;
}
gboolean res;
g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
- g_return_val_if_fail (event != NULL && event->type == GDK_FOCUS_CHANGE, FALSE);
+ g_return_val_if_fail (event != NULL && event->any.type == GDK_FOCUS_CHANGE, FALSE);
g_object_ref (widget);